package com.example.joke.utils

import android.content.Context
import android.content.res.Resources
import android.util.TypedValue

/**
 * @author：yangliu
 * @date：2024/07/03 11:46
 * @description：单位转换工具类
 **/
object DensityUtil {

  /**
   * dp转换px
   *
   * @param context 上下文
   * @param dpValue dp值
   * @return px值
   */
  fun dp2px(context: Context, dpValue: Float): Int {
    val scale = context.resources.displayMetrics.density
    return (dpValue * scale + 0.5f).toInt()
  }

  /**
   * sp转pd
   *
   * @param context 上下文
   * @param spValue sp值
   * @return px值
   */
  fun sp2px(context: Context, spValue: Float): Int {
    return TypedValue.applyDimension(
      TypedValue.COMPLEX_UNIT_SP, spValue,
      context.resources.displayMetrics
    ).toInt()
  }

  /**
   * px转换dp
   *
   * @param context 上下文
   * @param pxValue px值
   * @return dp值
   */
  fun px2dp(context: Context, pxValue: Float): Int {
    val scale = context.resources.displayMetrics.density
    return (pxValue / scale + 0.5f).toInt()
  }

  fun getScreenWidth(): Int {
    return Resources.getSystem().displayMetrics.widthPixels
  }

  fun getScreenHeight(): Int {
    return Resources.getSystem().displayMetrics.heightPixels
  }

  fun getDensity(): Float {
    return Resources.getSystem().displayMetrics.density
  }


}